// map
def map = [:]
map.a = 1
assert map.a == 1

// 定义一个 Expando 对象
def boxer = new Expando()

// 一开始没有 takeThis 属性
assert null == boxer.takeThis

// 通过赋值, 给 Expando 对象动态添加了一个 takeThis 属性, 就像 map 那样
boxer.takeThis = 'ouch!'

assert 'ouch!' == boxer.takeThis

// 添加一个 fightBack 属性, 并赋值一个闭包
boxer.fightBack = { times -> delegate.takeThis*3 }

// 调用闭包
assert 'ouch!ouch!ouch!' == boxer.fightBack(3)
